/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.edu.unicen.twitter.suggest.backend.datasources.dao;

import ar.edu.unicen.twitter.suggest.backend.dtos.UsuarioDataset;
import ar.edu.unicen.twitter.suggest.backend.dtos.UsuarioDatasetAbstracto;
import ar.edu.unicen.twitter.suggest.commons.dtos.Usuario;
import java.util.Collection;
import java.util.List;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author Alex
 */
public interface TwitterDatasetDao {

    @Transactional
    Usuario getUsuarioLazy(long id);
    @Transactional
    Collection<Usuario> getUsuariosLazy(List<Long> ids);
    @Transactional
    int[] getSeguidores(long ids);
    @Transactional
    int[] getSeguidos(long ids);
    
    @Transactional
    UsuarioDataset getUsuario(long id);
    @Transactional
    UsuarioDataset getUsuarioSmall(long id);
    @Transactional
    Collection<UsuarioDataset> getUsuariosSmall(List<Long> ids);
    @Transactional
    Collection<UsuarioDataset> getUsuarios(List<Long> ids);

    @Transactional
    void update(UsuarioDataset u);

    @Transactional
    void update(Collection<UsuarioDataset> usuarios);
    
    @Transactional
    void merge(UsuarioDataset usuario);
    @Transactional
    void merge(Collection<UsuarioDataset> usuarios);
}
